home *** CD-ROM | disk | FTP | other *** search
/ Skunkware 5 / Skunkware 5.iso / src / X11 / xconq / config.h < prev    next >
C/C++ Source or Header  |  1995-05-09  |  7KB  |  224 lines

  1. /* Copyright (c) 1987, 1988  Stanley T. Shebs, University of Utah. */
  2. /* This program may be used, copied, modified, and redistributed freely */
  3. /* for noncommercial purposes, so long as this notice remains intact. */
  4.  
  5. #pragma comment(exestr, "@(#) config.h 12.1 95/05/09 ")
  6.  
  7. /* RCS $Header: config.h,v 1.5 88/07/20 16:05:05 shebs Exp $ */
  8.  
  9. /* This file has several things that can be fiddled with;  generally, */
  10. /* the more interesting things to tweak are closer to the front of the file. */
  11. /* Xconq is no longer wired to X; in fact, the specific graphics interface */
  12. /* is unknown until link time, and does not affect compilation. */
  13.  
  14. /* Just a couple places where we care about machine type - but the main */
  15. /* program does assume argc/argv interface, which is a problem for micros. */
  16.  
  17. #define UNIX
  18.  
  19. /* These are wishful thinking at the moment. */
  20. /* #define ATARI */
  21. /* #define MAC */
  22.  
  23. #define SCO_UNIX    /* SCO UNIX 3.2.1 or later */
  24. /* #define BSD  */      /* Berkeley Unix and probably Ultrix too */
  25. /* #define HPUX */      /* HP's mishmash of features */
  26. /* #define SYSV */      /* Darth Vader's favorite Unix */
  27. /* #define DGUX */      /* Data General is almost like BSD */
  28.  
  29. #ifdef SCO_UNIX
  30. #define SELECT2         /* Can use select(2) to wait on several at once. */
  31. #define USECBREAK       /* Use crmode() for raw mode in curses. */
  32. #endif
  33.  
  34. #ifdef BSD
  35. #define SELECT2         /* Can use select(2) to wait on several at once. */
  36. #define USECRMODE       /* Use crmode() for raw mode in curses. */
  37. #endif
  38.  
  39. #ifdef HPUX
  40. #define SELECT2         /* Can use select(2) to wait on several at once. */
  41. #define USECBREAK       /* Use cbreak() for raw mode in curses. */
  42. #endif
  43.  
  44. #ifdef SYSV
  45. #define USECBREAK       /* Use cbreak() for raw mode in curses. */
  46. #endif
  47.  
  48. #ifdef DGUX
  49. #define SELECT2         /* Can use select(2) to wait on several at once. */
  50. #define USECRMODE       /* Use crmode() for raw mode in curses. */
  51. #endif /* DGUX */
  52.  
  53. #include <stdio.h>
  54. #include <ctype.h>
  55.  
  56. #ifdef DGUX
  57. #include <string.h>     /* To get malloc declaration */
  58. #endif /* DGUX */
  59.  
  60. /* This is where predefined maps/scenarios/periods/fonts can be found. */
  61.  
  62. #ifndef XCONQLIB
  63. #define XCONQLIB "/u/games/lib/xconq"
  64. #endif  /* XCONQLIB */
  65.  
  66. /* The newsfile always lives in the lib directory. */
  67.  
  68. #define NEWSFILE "xconq.news"
  69.  
  70. /* This file is a list of mapfiles to exhibit in menus; it will always be */
  71. /* in the lib directory.  There are no automatic constructors for this */
  72. /* file, since it should contain only well-tested files added after careful */
  73. /* deliberation. */
  74.  
  75. #define MAPFILEFILE "mapfiles"
  76.  
  77. /* The name of the savefile.  It will be put in the current directory. */
  78.  
  79. #define SAVEFILE "save.xconq"
  80.  
  81. /* This file gets the parameter listing for the period in use. */
  82. /* It will also be created in the current directory. */
  83.  
  84. #define PARMSFILE "parms.xconq"
  85.  
  86. /* This file gets the game statistics when it's all over. */
  87. /* It will also be created in the current directory. */
  88.  
  89. #define STATSFILE "stats.xconq"
  90.  
  91. /* This file gets a printout of the side's view. */
  92.  
  93. #define VIEWFILE "view.xconq"
  94.  
  95. /* This file gets a list of commands as they appear in the help window. */
  96.  
  97. #define CMDFILE "cmds.xconq"
  98.  
  99. /* Default random map sizes.  Adjust these to taste - 60x60 is a moderate */
  100. /* length game, 30x30 is short, 360x120 is L-O-N-G ! */
  101.  
  102. #define DEFAULTWIDTH 120
  103. #define DEFAULTHEIGHT 120
  104.  
  105. /* Absolute maximum number of sides that can play.  This limit can only be */
  106. /* extended by changing the representation of views of players from bytes */
  107. /* to something larger, thereby doubling (at least) space requirements. */
  108.  
  109. #define MAXSIDES 7
  110.  
  111. /* Absolute maximum number of kinds of units. (same restriction as above) */
  112.  
  113. #define MAXUTYPES 30
  114.  
  115. /* Maximum number of types of natural resources.  This number can be set */
  116. /* higher, in fact I think the only limitation is that there won't be */
  117. /* enough distinct chars, but more rtypes means larger unit objects. */
  118.  
  119. #define MAXRTYPES 6
  120.  
  121. /* Maximum number of terrain types.  Must be fewer than 256, but also */
  122. /* limited by display capabilities. */
  123.  
  124. #define MAXTTYPES 20
  125.  
  126. /* Maximum number of random side names that can be defined. */
  127.  
  128. #define MAXSNAMES 200
  129.  
  130. /* Maximum number of random unit names that can be defined. */
  131.  
  132. #define MAXUNAMES 1000
  133.  
  134. /* The maximum number of mapfiles that can be in menus. (Not a limit on the */
  135. /* total number of files that can exist, however.) */
  136.  
  137. #define MAXMAPMENU 100
  138.  
  139. /* The maximum number of mapfiles that can be loaded into a game (recursive */
  140. /* loads are not performed and not counted). */
  141.  
  142. #define MAXLOADED 16
  143.  
  144. /* Default game length in turns. */
  145.  
  146. #define DEFAULTTURNS 1000
  147.  
  148. /* Number of messages displayed at one time. No upper limit I believe, */
  149. /* but too many won't fit on the screen.  The actual numbers of lines */
  150. /* displayed can be changed by the player, subject to limitations on the */
  151. /* screen space available. */
  152.  
  153. #define MAXNOTES 20
  154.  
  155. /* Default color of text and icons - 0 is for white on black, 1 */
  156. /* is for black on white.  Should be set appropriately for the most */
  157. /* common monochrome display (color displays always do white on black). */
  158. /* This is also settable by the player, so the default is just for */
  159. /* convenience of the majority. */
  160.  
  161. #define BLACKONWHITE 0
  162.  
  163. /* When true, displays will use more graphics and less text.  This can */
  164. /* also be toggled by players individually. */
  165.  
  166. #define GRAPHICAL 0
  167.  
  168. /* The default fonts can be altered by users, so these are just hints. */
  169. /* These options do not necessarily apply to non-X versions. */
  170.  
  171. #ifdef SCO_UNIX
  172. #define TEXTFONT "8x13"        /* works better for VGA */
  173. #else
  174. #define TEXTFONT "9x15"
  175. #endif /* SCO_UNIX */
  176. #define ICONFONT "xconq"
  177.  
  178. /* All names, phrases, and messages must be able to fit in statically */
  179. /* allocated buffers of this size. */
  180.  
  181. #define BUFSIZE 120
  182.  
  183. /* If defined, a statistics file is written at the end of the game. */
  184. /* The numbers therein are only for serious gamers, and the files can */
  185. /* be embarassing clutter in your directory! */
  186.  
  187. #define STATISTICS
  188.  
  189. /* Initial limit on units and cities that can be active at one time.  If */
  190. /* growable option is enabled, will try to grow the array to hold more. */
  191.  
  192. #define INITMAXUNITS  1000
  193. /* #define GROWABLE  */
  194.  
  195. /* When this is enabled, machine players will be able to examine humans' */
  196. /* units rather more closely than is possible in reverse.  In particular, */
  197. /* a machine will know just where the human units are, as well as their */
  198. /* current attributes (like hit points). */
  199.  
  200. /* #define CHEAT */
  201.  
  202. /* When the eye needs to be drawn to a particular spot on the screen, */
  203. /* the X interfaces will briefly flash an X.  The time is set by this */
  204. /* value, which is measured in milliseconds that the X is visible, and */
  205. /* the flashing can be disabled entirely by supplying 0 here. */
  206.  
  207. #define DELAY 100
  208.  
  209. /* Some X11 servers die if too much is written between output flushes. */
  210. /* This can be used with any graphics system with a similar problem; */
  211. /* this option does not affect correctness, but may impact performance. */
  212.  
  213. /*#define STUPIDFLUSH*/
  214.  
  215. /* When allocating colors, the X interface will complain if the
  216.  * red, green or blue values for the color differ more than this
  217.  * value from what is expected.
  218.  */
  219.  
  220. #define COLOR_DIFF 1000
  221.  
  222. #define MAX_COLORS 255
  223. #define MIN_COLORS 10
  224.